//递归实现汉诺塔 tower of hanoi
import java.util.Scanner;
public class Tower {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int num = scanner.nextInt();
        play frist = new play();
        frist.Hanoitower(num,"A","B","C");
    }
}
class play {
    public void Hanoitower(int num,String A,String B,String C) {
        if(num == 1) {
            //只有一个圆盘。
            System.out.println(A+"-->"+C);//把A上的圆盘直接挪到C上去。
        } else {
            //大于一个圆盘
            //首先借助C塔，把A塔上除最后一个圆盘以外的其他圆盘挪到B塔上。
            Hanoitower(num-1,A,C,B);
            //把A塔最后一个圆盘挪到C塔上
            System.out.println(A+"-->"+C);
            //利用A塔，把B塔上的圆盘挪到C塔上。
            Hanoitower(num-1,B,A,C);
            //共挪动了2的num次方减一次
        }
    }
}
